<?php

namespace app\api\controller;

use app\common\controller\Api;
use think\Db;

/**
 * 示例业务接口
 * @internal
 */
class Records extends Api
{

    // 无需登录的接口,*表示全部
    protected $noNeedLogin = ['*'];
    // 无需鉴权的接口,*表示全部
    protected $noNeedRight = ['*'];

    /**
     * 范围/分类
     */
    public function range()
    {
        $list = Db::name('Range')->field('id,name')->select();
        $this->success('', ['list' => $list]);
    }

    /**
     * 列表
     */
    public function index(){
        $range = input('range','');
        $type = input('type','');
        $where =[];
        if($range) $where['c.name'] = ['like','%'.$range.'%'];
        if(in_array($type,['everyday','workday','restday'])) $where['r.type'] = $type;
        $list = \app\common\model\Records::alias("r")
            ->join("Range c","r.range_id=c.id","left")
            ->where($where)
            ->field("r.*,c.name as range_name")
            ->order('r.createtime desc')
            ->paginate()
            ->each(function ($data) {
                $data['time'] =$data['start'].'~'.$data['end'];
                return $data;
            });

        $this->success('', $list);
    }

    /**
     * 添加
     */
    public function add(){
        $this->repeat_filter();//防抖
        $range_id = input('range_id');
        $type = input('type','everyday');
        $start = input('start');
        $end = input('end');
        if(!$range_id) $this->error(__('请选择波段'));
        if(!$type) $this->error(__('请选择循环类型'));
        if(!$start) $this->error(__('请选择开始时间'));
        if(!$end) $this->error(__('请选择结束时间'));
        \app\common\model\Records::create(compact('range_id','type','start','end'));
        $this->success('');
    }


    /**
     * 修改
     */
    public function edit(){
        $id = input('id');
        $range_id = input('range_id');
        $type = input('type','everyday');
        $start = input('start');
        $end = input('end');
        if(!$id) $this->error(__('请选择屏蔽波段数据'));
        $info = \app\common\model\Records::get($id);
        if(!$info) $this->error(__('参数错误'));
        if($range_id) $info->range_id =$range_id;
        if($type) $info->type =$type;
        if($start) $info->start =$start;
        if($end) $info->end =$end;
        $info->save();
        $this->success('');
    }

    /**
     * 设置
     */
    public function setStatus(){
        $id = input('id');
        $status = input('status');
        if(!$id) $this->error(__('请选择屏蔽波段数据'));
        $info = \app\common\model\Records::get($id);
        if(!$info) $this->error(__('参数错误'));
        if(in_array($status,['0','1'])) $info->status =$status;
        $info->save();
        $this->success('');
    }

    /**
     * 删除
     */
    public function delete(){
        $id = input('id');
        if(!$id) $this->error(__('请选择屏蔽波段数据'));
        $info = \app\common\model\Records::get($id);
        if(!$info) $this->error(__('参数错误'));
        $info->delete();
        $this->success('');
    }

}
